# 21ms 3112KB 1/4错误，一个超时
k=int(input())
ranklist=[]
room_num=0

for time in range(k): # 2个考场
    m=int(input())
    room_num+=1
    room={}
    for i in range(m):
        id,score=input().split()  # id ,score
        #准考证号、排名、考场号以及考场内排名。
        room[id]=[int(score),0,room_num,0]

    room=sorted(room.items(),key=lambda x:(-x[1][0],x[0])) #
    room[0][1][3]=1
    for j in range(1,len(room)):
        if room[j][1][0]==room[j-1][1][0]: #分数等于上一个的分数
            room[j][1][3]=room[j-1][1][3] #排名等于上一个的排名
        else:
            room[j][1][3]=j+1

    ranklist.extend(room)

print(len(ranklist))
ans=sorted(ranklist,key=lambda x:(-x[1][0],x[0])) #,reverse=True

# ans[0][1][1]=1
for k in range(len(ans)):
    
    print(ans[k][0],end=" ") #id
    if ans[k][1][0]==ans[k-1][1][0]:
        ans[k][1][1]=ans[k-1][1][1]
    else:
        ans[k][1][1]=k+1

    print(*ans[k][1][1:],sep=" ")

